const {Maybe, Container} = require('./support');
const fp = require('lodash/fp');

// 练习1
let maybe = Maybe.of([5,6,1]);
let ex1 = () => {
    return maybe.map(fp.map(fp.add(1)));
}
console.log(ex1());

// 练习2
let xs = Container.of(['do','ray','me','fa','so','la','ti','do']);
let ex2 = () => {
    return xs.map(fp.first)._value;
}
console.log(ex2());

// 练习3
let safeProp = fp.curry(function(x,o){
    return Maybe.of(o[x]);
});
let user = {id:2, name: 'Albert'};
let ex3 = () => {
    return safeProp('name', user).map(fp.first)._value;
}
console.log(ex3());

// 练习4
let ex4 = function (n) {
    return Maybe.of(n).map(x=>parseInt(x))._value;
}
console.log(ex4('12.3'));
